package com.br.gvttv;

import java.util.List;
import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.LinearLayout;

import com.br.gvttv.util.SharedPreferencesUtils;
import com.br.negocio.entidades.PacoteEnum;

public class ConfiguracaoPacotesCanaisActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.configuracao_pacotes_canais);

		criarPacotesPrincipaisLinearLayout();
		criarPacotesTelecineLinearLayout();
		criarPacotesHboLinearLayout();
		criarPacotesOpcionaisLinearLayout();
	}

	private void criarPacotesPrincipaisLinearLayout() {
		LinearLayout pacotesPrincipaisLinearLayout = ((LinearLayout) findViewById(R.id.pacotesPrincipaisLinearLayout));
		List<PacoteEnum> pacotesPrincipais = PacoteEnum.getPacotesPrincipais();

		criarCheckBox(pacotesPrincipaisLinearLayout, pacotesPrincipais);
	}

	private void criarPacotesTelecineLinearLayout() {
		LinearLayout pacotesTelecineLinearLayout = ((LinearLayout) findViewById(R.id.pacotesTelecineLinearLayout));
		List<PacoteEnum> pacotesTelecine = PacoteEnum.getPacotesTelecine();

		criarCheckBox(pacotesTelecineLinearLayout, pacotesTelecine);
	}

	private void criarPacotesHboLinearLayout() {
		LinearLayout pacotesHboLinearLayout = ((LinearLayout) findViewById(R.id.pacotesHboLinearLayout));
		List<PacoteEnum> pacotesHbo = PacoteEnum.getPacotesHbo();

		criarCheckBox(pacotesHboLinearLayout, pacotesHbo);
	}

	private void criarPacotesOpcionaisLinearLayout() {
		LinearLayout pacotesOpcionaisLinearLayout = ((LinearLayout) findViewById(R.id.pacotesOpcionaisLinearLayout));
		List<PacoteEnum> pacotesOpcionais = PacoteEnum.getPacotesOpcionais();

		criarCheckBox(pacotesOpcionaisLinearLayout, pacotesOpcionais);
	}

	private void criarCheckBox(LinearLayout linearLayout, List<PacoteEnum> pacotesEnum) {
		linearLayout.removeAllViews();

		for (PacoteEnum pacoteEnum : pacotesEnum) {
			CheckBox checkBox = new CheckBox(this);
			linearLayout.addView(checkBox);

			checkBox.setId(new Random().nextInt());
			checkBox.setOnClickListener(new OnClickListenerOutrosCanaisCheckBox());
			checkBox.setHint(pacoteEnum.toString());
			checkBox.setText(pacoteEnum.getDescricao());
			checkBox.setChecked(SharedPreferencesUtils.getConfiguracaoPacoteCanal(this, pacoteEnum));
		}
	}

	private class OnClickListenerOutrosCanaisCheckBox implements OnClickListener {

		@Override
		public void onClick(View v) {
			acaoSalvar((LinearLayout) v.getParent(), v.getId());
		}

		private void acaoSalvar(View view, int checkedId) {
			for (View touchable : view.getTouchables()) {
				CompoundButton button = (CompoundButton) touchable;

				PacoteEnum pacoteEnum = PacoteEnum.valueOf(button.getHint().toString());

				if (view.getId() != R.id.pacotesOpcionaisLinearLayout) {
					button.setChecked(button.getId() == checkedId ? button.isChecked() : false);
				}

				SharedPreferencesUtils.setConfiguracaoPacoteCanal(ConfiguracaoPacotesCanaisActivity.this, pacoteEnum, button.isChecked());
			}
		}
	}
}
